#ifndef _HALMACH_T_H_
#define _HALMACH_T_H_

#include <hyper_t.h>
#include <spinlock_t.h>
#include <list_t.h>
#include <halmem_t.h>
#include <krlintrpt_t.h>  /* intsrcdsc_t */

typedef struct s_MACH
    {
    spinlock_t      lock;              /* 保持数据结构自身的自旋锁 */
    list_t          list;              /* 链表 */
    addr_t          krnlinramstart;    /* 内核在内存中的开始地址 */
    addr_t          krnlinramend;      /* 内核在内存中的结束地址 */
    mmapdsc_t *     mmapdsc;           /* 内存位图在内存中的开始地址 */
    uint_t          mmapdscnbr;        /* 内存位图的个数 */
    phyaddrspce_t * phyaddrspcedsc;    /* 物理地址空间描述符 (存储地址) */
    uint_t          phyaddrspcenbr;    /* 物理地址空间划分个数 */
    intsrcdsc_t *   intsrcdsc;         /* 中断源描诉符 (存储地址) */
    uint_t          intsrcdscnbr;      /* 中断源描述符个数 */
    } mach_t;

#endif